#ifndef JOLFS_VOLUME_REMOTE_H
#define JOLFS_VOLUME_REMOTE_H

#include <string>
#include "volume.h"
#include "entry.h"

namespace jolfs
{
  class RemoteVolume : public Volume
  {
  public:
    RemoteVolume( const std::string& name );
    RemoteVolume( const RemoteVolume& );
    ~RemoteVolume();
    
  public:
    virtual EntryList    getEntries() const = 0;
    virtual Entry*       getRoot   ()       = 0;
    virtual const Entry* getRoot   () const = 0;
    virtual const Entry* getEntry( const std::string& path ) const = 0;
    virtual Entry*       getEntry( const std::string& path )       = 0;
  };
} // namespace jolfs

#endif // JOLFS_VOLUME_REMOTE_H
